-- 基础键位映射

local map = vim.keymap.set

-- 窗口切换
map("n", "<C-h>", "<C-w>h")
map("n", "<C-j>", "<C-w>j")
map("n", "<C-k>", "<C-w>k")
map("n", "<C-l>", "<C-w>l")

-- 快速调整窗口大小
map("n", "<leader>wh", ":vertical resize -5<CR>")
map("n", "<leader>wl", ":vertical resize +5<CR>")
map("n", "<leader>wk", ":resize -5<CR>")
map("n", "<leader>wj", ":resize +5<CR>")

-- 新建缓冲区
map("n", "<C-n>", ":enew<CR>")

-- 系统剪贴板复制粘贴
map("v", "<C-y>", '"+y')
map("n", "<C-p>", '"+p')

-- 命令行 %% 映射为当前文件目录
map("c", "%%", function()
    return vim.fn.getcmdtype() == ":" and vim.fn.expand("%:h") .. "/" or "%%"
end, { expr = true, noremap = true })


-- 保存上次编辑位置
vim.api.nvim_create_autocmd("BufReadPost", {
    pattern = "*",
    callback = function()
        if vim.fn.line([['"]]) > 0 and vim.fn.line([['"]]) <= vim.fn.line("$") then
            vim.cmd('normal! g`"')
        end
    end,
})

